<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>3.3. 使用背景和前景</title>
<link rel="stylesheet" href="css/style.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
<link rel="start" href="index.html" title="KCDDP KAGeXpress 3.0 使用手册">
<link rel="up" href="ch03.html" title="第 3 章 KAGeXpress使用入门">
<link rel="prev" href="ch03-2.html" title="3.2. 文字显示与控制">
<link rel="next" href="ch03-4.html" title="3.4. 播放音效、音乐">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">3.3. 使用背景和前景</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ch03-2.html">上一页</a> </td>
<th width="60%" align="center">第 3 章 KAGeXpress使用入门</th>
<td width="20%" align="right"> <a accesskey="n" href="ch03-4.html">下一页</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" lang="zh-CN">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="ch03-3"></a>3.3. 使用背景和前景</h2></div></div></div>
<p>KAGeXpress中，切换背景一般可以使用bg命令。</p>
<p>属性storage指定切换对象的文件名。如果不指定文件的后缀名，则系统将按照的顺序自动检索。</p>
<pre class="programlisting">@bg storage=ex01</pre>
<p>这个指令可以调出主文件名为ex01的文件。</p>
<p>切换背景可以使用渐变来完成。加入time属性，便会在切换背景时使用渐变过渡。渐变的方法以method参数指定，如果没有指定，默认使用crossfade。</p>
<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[提示]" src="images/tip.png"></td>
<th align="left">提示</th>
</tr>
<tr><td align="left" valign="top"><p>对于KAGeXpress提供的图形指令（bg、fg和cl），渐变类型本身特有的属性应该加入指令调用时的属性中。</p></td></tr>
</table></div>
<p>下面是一个切换背景的例子</p>
<div class="example">
<a name="ex3-4"></a><p class="title"><b>例 3.4. 背景切换的例子</b></p>
<div class="example-contents">
<pre class="programlisting">@bg storage=ex01 time=1200</pre>
<p>这个指令可以从当前背景开始，以Crossfade的方法在1200秒内把背景渐变到ex01。</p>
<pre class="programlisting">@bg storage=ex01 time=1200 method=universal rule=r01</pre>
<p>这个指令可以从当前背景开始，按照规则图像r01的规则在1200秒内把背景渐变到ex01。</p>
</div>
</div>
<br class="example-break"><p>显示前景可以使用fg命令，消除前景可以使用cl命令。</p>
<p>上面所讲到的用于bg命令的属性（time和渐变相关参数）同样可以用于这两个指令。此外，上面提到的storage属性也适用于fg指令。</p>
<p>此外，因为前景层不止一个，所以fg、cl命令可以对任意一个指定的前景层进行操作。要操作不同的前景层，请指定layer属性。当不指定layer的时候，默认操作前景层0。</p>
<p>同样，由于前景所绘制的立绘等图像经常不满整个屏幕，所以fg命令也可以设置图像的位置。以窗口作上角为原点，t设置顶端坐标，l设置左端坐标。如果没有设定，则将沿用上次的位置。</p>
<p>此外，可以使用pos参数，指定预设的位置。pos参数默认的可选值见下，这些值可以在config.tjs中调整。调用时可以使用全名，也可以使用缩略名。</p>
<div class="table">
<a name="tab3-2"></a><p class="title"><b>表 3.2. fg命令的pos属性</b></p>
<div class="table-contents"><table summary="fg命令的pos属性" border="0" style="border-collapse: collapse;border-top: 0.5pt solid ; border-bottom: 0.5pt solid ; border-left: 0.5pt solid ; border-right: 0.5pt solid ; ">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">全名</th>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">缩略名</th>
<th style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">默认横向位置[像素]（640x480）</th>
<th style="border-bottom: 0.5pt solid ; ">默认横向位置[像素]（800x600）</th>
</tr></thead>
<tbody>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">left</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">l</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">160</td>
<td style="border-bottom: 0.5pt solid ; ">200</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">left_center</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">lc</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">240</td>
<td style="border-bottom: 0.5pt solid ; ">300</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">center</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">c</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">320</td>
<td style="border-bottom: 0.5pt solid ; ">400</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">right_center</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">rc</td>
<td style="border-right: 0.5pt solid ; border-bottom: 0.5pt solid ; ">400</td>
<td style="border-bottom: 0.5pt solid ; ">500</td>
</tr>
<tr>
<td style="border-right: 0.5pt solid ; ">right</td>
<td style="border-right: 0.5pt solid ; ">r</td>
<td style="border-right: 0.5pt solid ; ">480</td>
<td style="">600</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>请注意，bg未指定time的时候默认直接显示背景图像，而fg、cl未指定time时默认以200秒长度的crossfade渐变显示/消除前景图像。这是因为，在调用bg的时候一般大家都会有按照自己习惯设定背景切换的效果，但是前景命令因为用量比较大，一般会希望能够比较快速、简便的处理。</p>
<div class="example">
<a name="ex3-5"></a><p class="title"><b>例 3.5. fg命令的例子</b></p>
<div class="example-contents"><pre class="programlisting">@bg storage=ex01 time=1000
				
@fg storage=fg01 pos=l t=0 ;在前景层0，左位置上显示图片fg01
@fg layer=1 storage=fg02 l=400 t=0 time=500 ;在前景层1，以(400,0)为左上角显示图片fg02
我是华丽的例子。[l][r]</pre></div>
</div>
<br class="example-break"><p>此外，cl加上属性all则将清除所有层。但是如果在定义属性keep=back，则背景层不会被清除。如果定义属性keep=msg，则消息层和背景层都不会被清除（只清除前景层）。这个功能在切换场景等时候会很有用处。</p>
<p>例：</p>
<div class="example">
<a name="ex3-6"></a><p class="title"><b>例 3.6. cl命令的例子</b></p>
<div class="example-contents"><pre class="programlisting">[bg storage=ex01 time=1000]
[fg storage=fg01]
我是华丽的例子。[l][r]
@cl ;清除前景层0
@cl all keep=back ;这条指令将会清除背景层以外的所有层。</pre></div>
</div>
<br class="example-break">
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ch03-2.html">上一页</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch03.html">上一级</a></td>
<td width="40%" align="right"> <a accesskey="n" href="ch03-4.html">下一页</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">3.2. 文字显示与控制 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td>
<td width="40%" align="right" valign="top"> 3.4. 播放音效、音乐</td>
</tr>
</table>
</div>
</body>
</html>
